<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			var showargus = function(){
				console.log(arguments);
				//显示了本函数运行时的传入参数对象(注意：是对象),甚至可以如下
				//因其_proto_:Object,所以它是个类数组对象,而不是数组.
				console.log(arguments.length);//显示数组长度 => 4
				console.log(arguments.callee);//返回当前函数原型
				console.log(arguments[1]);//返回当前函数原型
			}
			showargus(1,5,3,4);
			//console.log(arguments);
			//显示错误,其只能在函数中使用,返回当前函数的所有传入的参数
			/* 有了这个对象我们以后写函数的时候，就不用给所有的形参指定参数名，然后通过参数名的方式获取参数了，
				我们可以直接使用arguments对象来获取实参 */
				
				
			/* 重点：我们可以借用arguments.callee来让匿名函数实现递归： */
			var sum = function(n) {
				if(n == 1) {
					return 1;
				} else {
					return n + arguments.callee(n-1);
				}
			}
			console.log("sum =", sum(5));
		</script>
	</body>
</html>
